package com.dubbo.service.business.refund;

import com.dubbo.domain.Refund;
import com.dubbo.domain.User;
import com.dubbo.service.base.BaseService;

import java.util.Map;

/**
 * 退货/换货service
 * @author chenluqiang
 * @date 2018年12月15日 上午10:08:31 
 *
 */
public interface RefundService extends BaseService<Refund> {
	

	/**
	 * 售后申请页面
	 * @author chenluqiang
	 * @date 2018年12月15日 下午4:15:11 
	 * @param orderId 订单id
	 * @param type  申请类型 0=退货 1=换货
	 * @return
	 */
	Map<String, Object> applyAfterSalePage(String orderId, Integer type);
	
	/**
	 * 生成 退货/换货信息
	 * @author chenluqiang
	 * @date 2018年12月15日 上午11:22:05 
	 * @param user 该用户信息
	 * @param json 退货/退款信息 json格式
	 * @return 
	 * @throws Exception 
	 */
	Map<String, Object> addRefund(User user, String json) throws Exception;

	/**
	 * 售后列表
	 * @author chenluqiang
	 * @date 2018年12月17日 下午2:42:37 
	 * @param type 类型 0=我的售后审核 1=我的售后申请 2=已完成
	 * @return
	 */
	Map<String, Object> refundList(User user, Long pageStart, Long pageTotal, Integer type);
	
	/**
	 * 删除售后数据
	 * @author chenluqiang
	 * @date 2018年12月18日 上午9:30:36 
	 * @param refundId 售后id
	 * @return
	 */
	Map<String, Object> delRefund(User user, String refundId);

	/**
	 * 售后详情
	 * @author chenluqiang
	 * @date 2018年12月18日 上午11:16:15 
	 * @param request
	 * @param refundId 售后id
	 * @return
	 */
	Map<String, Object> refundDetail(User user, String refundId);

	/**
	 * 根据文章类型获取文章
	 * @author wujunyuan
	 * @date 2018年12月26日  上午10:30:52
	 * @param request
	 * @param type 1=关于狮盾 2=售后说明
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> getArticle(Integer type);

	/**
	 * 获取(退货/换货)原因
	 * @author wujunyuan
	 * @date 2018年12月27日  下午5:48:42
	 * @param status 0=退货原因 1=换货原因
	 * @return
	 */
	Map<String, Object> getReason(Integer status);
	/**
	 * 审核售后
	 *
	 * @author lihongwu
	 * 2018年12月29日 上午11:33:39
	 * @param request
	 * @param refundId
	 * @param type   0=拒绝  1=通过
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> auditing(User user, String refundId, Integer type, String content);
	
	/**
	 * 获取售后申请 结算金额 ，退货总价
	 * @author chenluqiang
	 * @date 2019年1月16日 下午4:33:27 
	 * @param goodsJson 商品数量 与价额信息
	 */
	Map<String, Object> getRefundMoney(User user, String goodsJson);
	
}
